/** @file Player
    @class Player
    @brief Controller that includes all player controlled controllers
*/
#ifndef _Player_h_
#define _Player_h_

#include "stdafx.h"
#include "AvatarController.h"
#include "SpectatorController.h"
#include "MusicController.h"

class SpectatorController;

class Player {
public:
	/**
	* The constructor
	*/
	Player (AvatarController* avatarCont, SpectatorController* specCont, MusicController* musicCont);
	
	/**
	* The deconstructor
	*/
	virtual ~Player ();
	
	/**
	* Deactivates the avatar controller and activeates the spectator controller
	*/
	void playerDeath();
	
	/**
	* Deactivates the spectator controller and activates the avatar conroller
	*/
	void playerSpawn();
	
	/**
	* Returns the attached avatar controller
	*/
	AvatarController* getAvatarController();
	
	/**
	* Returns the attached music controller
	*/
	MusicController* getMusicController();

private:
	/**
	* The attached avatar controller
	*/
	AvatarController* m_aCtrl;
	
	/**
	* The attached spectator controller
	*/
	SpectatorController* m_sCtrl;
	
	/**
	* The attached music controller
	*/
	MusicController* m_musicCtrl;
};

#endif